package servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import classes.AccountManager;
import classes.PasswordManager;
import classes.User;

/**
 * Servlet implementation class ForgetPassword
 */
@WebServlet("/Password")
public class Password extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Password() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String answer = request.getParameter("answer");
		String username = request.getParameter("user");
		AccountManager manager = (AccountManager)request.getServletContext().getAttribute(AccountManager.ACCOUNTMANAGER);
		User user = manager.getUser(username);
		PrintWriter out = response.getWriter();
		if(answer.equals(user.getAnswer())){
			out.println("Your Password is sent to " + username +"@freeuni.edu.ge");
			String pass = PasswordManager.getRandomPassword();
			user.setPassword(PasswordManager.generatePassword(pass));
			PasswordManager.sendForgottenPassword(username,pass);
		}
		else{
			RequestDispatcher dispatch = request.getRequestDispatcher("WrongPassAnswer.html");
			dispatch.forward(request, response);
		}
	}
}
